/*
 * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package com.sun.jmx.remote.util;

import javax.management.loading.ClassLoaderRepository;

public class ClassLoaderWithRepository extends ClassLoader {

  public ClassLoaderWithRepository(ClassLoaderRepository clr,
      ClassLoader cl2) {

    if (clr == null) {
      throw new
          IllegalArgumentException("Null ClassLoaderRepository object.");
    }

    repository = clr;
    this.cl2 = cl2;
  }

  protected Class<?> findClass(String name) throws ClassNotFoundException {
    try {
      return repository.loadClass(name);
    } catch (ClassNotFoundException cne) {
      if (cl2 != null) {
        return cl2.loadClass(name);
      } else {
        throw cne;
      }
    }
  }

  private ClassLoaderRepository repository;
  private ClassLoader cl2;
}
